package tugas.akhir.jason;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.net.Uri;
import android.util.Log;

public class DBAdapter 
{
    public static final String KEY_ROWID = "_id";
    public static final String KEY_IDGLOBAL = "idglobal";
    
    public static final String KEY_LONGITUDE = "longitude";
    public static final String KEY_LATITUDE = "latitude";
    
    public static final String KEY_ALAMATGLOBAL = "alamatrumah";
    public static final String KEY_IMEII = "imeii";
    public static final String KEY_TIMESTAMP = "timestamp";

    public static final String KEY_DR01_NAMAFASILITASUMUM = "dr01_namafasilitasumum";
    public static final String KEY_DR01_ALAMATFASILITASUMUM = "dr01_alamatfasilitasumum";
    
    public static final String KEY_DR02_NAMAKANTOR = "dr02_namakantor";
    public static final String KEY_DR02_ALAMATKANTOR = "dr02_alamatkantor";
    public static final String KEY_DR02_NAMAPEMILIKKANTOR = "dr02_namapemilikkantor";
    public static final String KEY_DR02_NOMORKONTAKPEMILIK = "dr02_nomorkontakpemilik";
    public static final String KEY_DR02_JUMLAHLANTAIRUSAK = "dr02_jumlahlantairusak";
    
    public static final String KEY_DR2_TOOGLE = "dr2_toogle";
    public static final String KEY_DR2_BUTTONPEMILIK = "dr2_BUTTONPEMILIK";
    public static final String KEY_DR2_BUTTONPENYEWA = "dr2_BUTTONPENYEWA";
    public static final String KEY_DR2_NAMAPENGHUNI = "dr2_namapenghuni";
    public static final String KEY_DR2_NOMORKONTAK = "dr2_nomorkontak";
    public static final String KEY_DR2_JUMLAHPENGHUNI = "dr2_jumlahpenghuni";
    
    public static final String KEY_DR3_ASURANSI = "dr3_asuransi";
    public static final String KEY_DR3_ASURANSIBANGUNAN = "dr3_asuransibangunan";
    public static final String KEY_DR3_ASURANSIBARANGPERSONAL = "dr3_asuransibarangpersonal";
    public static final String KEY_DR3_ASURANSIJIWA = "dr3_asuransijiwa";
    public static final String KEY_DR3_TIDAKADA = "dr3_tidakada";
    public static final String KEY_DR3_TIDAKDIKETAHUI = "dr3_tidakdiketahui";
    
    public static final String KEY_DR4_PENYEBABKERUSAKAN = "dr4_penyebabkerusakan";
    public static final String KEY_DR4_GEMPABUMI = "dr4_gempabumi";
    public static final String KEY_DR4_TSUNAMI = "dr4_tsunami";
    public static final String KEY_DR4_GUNUNGMELETUS = "dr4_gunungmeletus";
    public static final String KEY_DR4_BANJIR = "dr4_banjir";
    public static final String KEY_DR4_KEBAKARAN = "dr4_kebakaran";
    public static final String KEY_DR4_ANGINTOPAN = "dr4_angintopan";
    public static final String KEY_DR4_TANAHLONGSOR = "dr4_tanahlongsor";
    public static final String KEY_DR4_LAINLAIN = "dr4_lainlain";
    
    public static final String KEY_DR5_KATEGORIKERUSAKAN = "dr5_kategorikerusakan";
    
    private static final String KEY_CATATAN = "catatan";
    private static final String KEY_IMAGE = "image";
    public static final String KEY_HEADERDATA = "headerdata";

    private static final String TAG = "DBAdapter";
    
    
    private static final String DATABASE_NAME = "middas.sqlite";
    private static final String DATABASE_TABLE = "middas";
    private static final String DATABASE_TABLE2 = "rumah";
    private static final String	DATABASE_TABLE3 = "kantor";
    private static final String DATABASE_TABLE4 = "fasilitasumum";

    private static final int DATABASE_VERSION = 1;

    private static final String DATABASE_CREATE =
        "create table middas (_id integer primary key autoincrement, "
        + "idglobal text not null, longitude text not null, latitude text not null, alamatrumah text not null, imeii text not null, timestamp text not null, " +
        		"dr01_namafasilitasumum text not null, dr01_alamatfasilitasumum text not null,  " +
        		"dr02_namakantor text not null, dr02_alamatkantor text not null, dr02_namapemilikkantor text not null, dr02_nomorkontakpemilik text not null, dr02_jumlahlantairusak text not null, " +
        		"dr2_toogle text not null, dr2_buttonpemilik text not null, dr2_buttonpenyewa text not null, dr2_namapenghuni text not null, " +
        		"dr2_nomorkontak text not null, dr2_jumlahpenghuni text not null, " +
        		"dr3_asuransibangunan text not null, dr3_asuransibarangpersonal text not null, dr3_asuransijiwa text not null, " +
        		"dr3_tidakada text not null, dr3_tidakdiketahui text not null, " +
        		"dr4_gempabumi text not null, dr4_tsunami text not null, dr4_gunungmeletus text not null, " +
        		"dr4_banjir text not null, dr4_kebakaran text not null, " +
        		"dr4_angintopan text not null, dr4_tanahlongsor text not null, dr4_lainlain text not null, " +
        		"dr5_kategorikerusakan text not null, " +
        		"headerdata text not null);";
    
    private static final String DATABASE_CREATE2 ="create table rumah (_id integer primary key autoincrement, idglobal text not null, timestamp text not null, longitude text not null, latitude text not null, alamatrumah text not null, dr2_namapenghuni text not null, dr2_nomorkontak text not null, dr2_jumlahpenghuni text not null, dr3_asuransi text not null, dr4_penyebabkerusakan text not null, dr5_kategorikerusakan text not null, catatan text not null, image MEDIUMBLOB);";
    private static final String DATABASE_CREATE3 ="create table kantor (_id integer primary key autoincrement, idglobal text not null, timestamp text not null, longitude text not null, latitude text not null, dr02_namakantor text not null, dr02_alamatkantor text not null, dr02_namapemilikkantor text not null, dr02_nomorkontakpemilik text not null, dr02_jumlahlantairusak text not null, dr4_penyebabkerusakan text not null, dr5_kategorikerusakan text not null, catatan text not null, image MEDIUMBLOB);";
    private static final String DATABASE_CREATE4 ="create table fasilitasumum (_id integer primary key autoincrement, idglobal text not null, timestamp text not null, longitude text not null, latitude text not null, dr01_namafasilitasumum text not null, dr01_alamatfasilitasumum text not null, dr4_penyebabkerusakan text not null, dr5_kategorikerusakan text not null, catatan text not null, image MEDIUMBLOB);";
    
    	
	public static final Uri CONTENT_URI = null;
        
    private final Context context; 
    
    private DatabaseHelper DBHelper;
    private SQLiteDatabase db;

    public DBAdapter(Context ctx) 
    {
        this.context = ctx;
        DBHelper = new DatabaseHelper(context);
    }
        
    public static class DatabaseHelper extends SQLiteOpenHelper 
    {
        DatabaseHelper(Context context) 
        {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db) 
        {
            db.execSQL(DATABASE_CREATE);
            db.execSQL(DATABASE_CREATE2);
            db.execSQL(DATABASE_CREATE3);
            db.execSQL(DATABASE_CREATE4);
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, 
        int newVersion) 
        {
            Log.w(TAG, "Upgrading database from version " + oldVersion 
                    + " to "
                    + newVersion + ", which will destroy all old data");
            db.execSQL("DROP TABLE IF EXISTS middas");
            db.execSQL("DROP TABLE IF EXISTS rumah");
            db.execSQL("DROP TABLE IF EXISTS kantor");
            db.execSQL("DROP TABLE IF EXISTS fasilitasumum");
            onCreate(db);
        }
    }    
    
    //---opens the database---
    public DBAdapter open() throws SQLException 
    {
        db = DBHelper.getWritableDatabase();
        return this;
    }

    //---closes the database---    
    public void close() 
    {
        DBHelper.close();
    }

    //---deletes a particular title---
    public boolean deleteTitle(long rowId) 
    {
        return db.delete(DATABASE_TABLE, KEY_ROWID + 
        		"=" + rowId, null) > 0;
    }

    //---retrieves all the titles---
    //public Cursor getAllTitles() 
    public Cursor getAll() 
    {
        return db.query(DATABASE_TABLE, new String[] {
        		KEY_ROWID, 
        		KEY_IDGLOBAL,
                KEY_LONGITUDE,
                KEY_LATITUDE,
        		KEY_ALAMATGLOBAL,
        		KEY_IMEII,
        		KEY_TIMESTAMP,
        		KEY_DR01_NAMAFASILITASUMUM,
        		KEY_DR01_ALAMATFASILITASUMUM,
        		KEY_DR2_TOOGLE,
        		KEY_DR2_BUTTONPEMILIK,
        		KEY_DR2_BUTTONPENYEWA,
        		KEY_DR2_NAMAPENGHUNI,
        		KEY_DR2_NOMORKONTAK,
        		KEY_DR2_JUMLAHPENGHUNI,
        		KEY_DR3_ASURANSIBANGUNAN,
        		KEY_DR3_ASURANSIBARANGPERSONAL,
        		KEY_DR3_ASURANSIJIWA, 
        		KEY_DR3_TIDAKADA,
        		KEY_DR3_TIDAKDIKETAHUI,
        		KEY_DR4_GEMPABUMI,
        		KEY_DR4_TSUNAMI,
        		KEY_DR4_GUNUNGMELETUS,
        		KEY_DR4_BANJIR,
        		KEY_DR4_KEBAKARAN,
        		KEY_DR4_ANGINTOPAN,
        		KEY_DR4_TANAHLONGSOR,
        		KEY_DR4_LAINLAIN,
        		KEY_DR5_KATEGORIKERUSAKAN,
        		KEY_HEADERDATA},
        		null, 
                null, 
                null, 
                null, 
                null);
    }

    //---retrieves a particular title---
    public Cursor getTitle(long rowId) throws SQLException 
    {
        Cursor mCursor =
                db.query(true, DATABASE_TABLE, new String[] {
                		KEY_ROWID, 
                		KEY_IDGLOBAL,
                		KEY_LONGITUDE,
                        KEY_LATITUDE,
                		KEY_ALAMATGLOBAL,
                		KEY_IMEII,
                		KEY_TIMESTAMP,
                		KEY_DR01_NAMAFASILITASUMUM,
                		KEY_DR01_ALAMATFASILITASUMUM,
                		KEY_DR2_TOOGLE,
                		KEY_DR2_BUTTONPEMILIK,
                		KEY_DR2_BUTTONPENYEWA,
                		KEY_DR2_NAMAPENGHUNI,
                		KEY_DR2_NOMORKONTAK,
                		KEY_DR2_JUMLAHPENGHUNI,
                		KEY_DR3_ASURANSIBANGUNAN,
                		KEY_DR3_ASURANSIBARANGPERSONAL,
                		KEY_DR3_ASURANSIJIWA, 
                		KEY_DR3_TIDAKADA,
                		KEY_DR3_TIDAKDIKETAHUI,
                		KEY_DR4_GEMPABUMI,
                		KEY_DR4_TSUNAMI,
                		KEY_DR4_GUNUNGMELETUS,
                		KEY_DR4_BANJIR,
                		KEY_DR4_KEBAKARAN,
                		KEY_DR4_ANGINTOPAN,
                		KEY_DR4_TANAHLONGSOR,
                		KEY_DR4_LAINLAIN,
                		KEY_DR5_KATEGORIKERUSAKAN,
                		KEY_HEADERDATA},
                		KEY_ROWID + "=" + rowId, 
                		null,
                		null, 
                		null, 
                		null, 
                		null
                		);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

    //---updates a title---
    public boolean updateTitle(long rowId, String idglobal, String longitude, String latitude,
    String alamatrumah, String imeii, String timestamp, String namafasilitasumum, String alamatfasilitasumum, String dr2_toogle, String dr2_buttonpemilik,
	String dr2_buttonpenyewa, String dr2_namapenghuni, String dr2_nomorkontak, String dr2_jumlahpenghuni,
	String dr3_asuransibangunan, String dr3_asuransibarangpersonal, String dr3_asuransijiwa, String dr3_tidakada, 
	String dr3_tidakdiketahui,
	String dr4_gempabumi, String dr4_tsunami, String dr4_gunungmeletus, String dr4_banjir, String dr4_kebakaran,
	String dr4_angintopan, String dr4_tanahlongsor, String dr4_lainlain, 
	String dr5_kategorikerusakan,
	String headerdata)
    {
        ContentValues args = new ContentValues();
        args.put(KEY_IDGLOBAL, idglobal);
        args.put(KEY_IDGLOBAL, idglobal);
        args.put(KEY_LONGITUDE, longitude);
        args.put(KEY_LATITUDE, latitude);
        args.put(KEY_ALAMATGLOBAL, alamatrumah);
        args.put(KEY_IMEII, imeii);
        args.put(KEY_TIMESTAMP, timestamp);
        args.put(KEY_DR01_NAMAFASILITASUMUM, namafasilitasumum);
        args.put(KEY_DR01_ALAMATFASILITASUMUM, alamatfasilitasumum);
        args.put(KEY_DR2_TOOGLE, dr2_toogle);
        args.put(KEY_DR2_BUTTONPEMILIK, dr2_buttonpemilik);
        args.put(KEY_DR2_BUTTONPENYEWA, dr2_buttonpenyewa);
        args.put(KEY_DR2_NAMAPENGHUNI, dr2_namapenghuni);
        args.put(KEY_DR2_NOMORKONTAK, dr2_nomorkontak);
        args.put(KEY_DR2_JUMLAHPENGHUNI, dr2_jumlahpenghuni);
        args.put(KEY_DR3_ASURANSIBANGUNAN, dr3_asuransibangunan);
        args.put(KEY_DR3_ASURANSIBARANGPERSONAL, dr3_asuransibarangpersonal);
        args.put(KEY_DR3_ASURANSIJIWA, dr3_asuransijiwa);
        args.put(KEY_DR3_TIDAKADA, dr3_tidakada);
        args.put(KEY_DR3_TIDAKDIKETAHUI, dr3_tidakdiketahui);
        args.put(KEY_DR4_GEMPABUMI, dr4_gempabumi);
        args.put(KEY_DR4_TSUNAMI, dr4_tsunami);
        args.put(KEY_DR4_GUNUNGMELETUS, dr4_gunungmeletus);
        args.put(KEY_DR4_BANJIR, dr4_banjir);
        args.put(KEY_DR4_KEBAKARAN, dr4_kebakaran);
        args.put(KEY_DR4_ANGINTOPAN, dr4_angintopan);
        args.put(KEY_DR4_TANAHLONGSOR, dr4_tanahlongsor);
        args.put(KEY_DR4_LAINLAIN, dr4_lainlain);
        args.put(KEY_DR5_KATEGORIKERUSAKAN, dr5_kategorikerusakan);
        
        return db.update(DATABASE_TABLE, args, 
                         KEY_ROWID + "=" + rowId, null) > 0;
    }

	public long insertTitle(String idglobal, String longitude, String latitude,
			String alamatrumah, String imeii, String timestamp,
			String dr01_namafasilitasumum, String dr01_alamatfasilitasumum,
			String dr02_namakantor, String dr02_alamatkantor,
			String dr02_namapemilikkantor, String dr02_nomorkontakpemilik,
			String dr02_jumlahlantairusak,
			String dr2_toogle, String dr2_buttonpemilik,
			String dr2_buttonpenyewa, String dr2_namapenghuni,
			String dr2_nomorkontak, String dr2_jumlahpenghuni,
			String dr3_asuransibangunan, String dr3_asuransibarangpersonal,
			String dr3_asuransijiwa, String dr3_tidakada,
			String dr3_tidakdiketahui, String dr4_gempabumi,
			String dr4_tsunami, String dr4_gunungmeletus, String dr4_banjir,
			String dr4_kebakaran, String dr4_angintopan,
			String dr4_tanahlongsor, String dr4_lainlain,
			String dr5_kategorikerusakan, String headerdata) {
		
		ContentValues initialValues = new ContentValues();
        initialValues.put(KEY_IDGLOBAL, idglobal);
        initialValues.put(KEY_LONGITUDE, longitude);
        initialValues.put(KEY_LATITUDE, latitude);
        initialValues.put(KEY_ALAMATGLOBAL, alamatrumah);
        initialValues.put(KEY_IMEII, imeii);
        initialValues.put(KEY_TIMESTAMP, timestamp);
		initialValues.put(KEY_DR01_NAMAFASILITASUMUM, dr01_namafasilitasumum);
		initialValues.put(KEY_DR01_ALAMATFASILITASUMUM, dr01_alamatfasilitasumum);
		initialValues.put(KEY_DR02_NAMAKANTOR, dr02_namakantor);
		initialValues.put(KEY_DR02_ALAMATKANTOR, dr02_alamatkantor);
		initialValues.put(KEY_DR02_NAMAPEMILIKKANTOR, dr02_namapemilikkantor);
		initialValues.put(KEY_DR02_NOMORKONTAKPEMILIK, dr02_nomorkontakpemilik);
		initialValues.put(KEY_DR02_JUMLAHLANTAIRUSAK, dr02_jumlahlantairusak);
		initialValues.put(KEY_DR2_TOOGLE, dr2_toogle);
        initialValues.put(KEY_DR2_BUTTONPEMILIK, dr2_buttonpemilik);
        initialValues.put(KEY_DR2_BUTTONPENYEWA, dr2_buttonpenyewa);
        initialValues.put(KEY_DR2_NAMAPENGHUNI, dr2_namapenghuni);
        initialValues.put(KEY_DR2_NOMORKONTAK, dr2_nomorkontak);
        initialValues.put(KEY_DR2_JUMLAHPENGHUNI, dr2_jumlahpenghuni);
        initialValues.put(KEY_DR3_ASURANSIBANGUNAN, dr3_asuransibangunan);
        initialValues.put(KEY_DR3_ASURANSIBARANGPERSONAL, dr3_asuransibarangpersonal);
        initialValues.put(KEY_DR3_ASURANSIJIWA, dr3_asuransijiwa);
        initialValues.put(KEY_DR3_TIDAKADA, dr3_tidakada);
        initialValues.put(KEY_DR3_TIDAKDIKETAHUI, dr3_tidakdiketahui);
        initialValues.put(KEY_DR4_GEMPABUMI, dr4_gempabumi);
        initialValues.put(KEY_DR4_TSUNAMI, dr4_tsunami);
        initialValues.put(KEY_DR4_GUNUNGMELETUS, dr4_gunungmeletus);
        initialValues.put(KEY_DR4_BANJIR, dr4_banjir);
        initialValues.put(KEY_DR4_KEBAKARAN, dr4_kebakaran);
        initialValues.put(KEY_DR4_ANGINTOPAN, dr4_angintopan);
        initialValues.put(KEY_DR4_TANAHLONGSOR, dr4_tanahlongsor);
        initialValues.put(KEY_DR4_LAINLAIN, dr4_lainlain);
        initialValues.put(KEY_DR5_KATEGORIKERUSAKAN, dr5_kategorikerusakan);
        initialValues.put(KEY_HEADERDATA, headerdata);
        
        return db.insert(DATABASE_TABLE, null, initialValues);
	}
	public long insertrumah(String idglobal, String timestamp, String longitude, String latitude,
			String alamatrumah, String dr2_namapenghuni,
			String dr2_nomorkontak, String dr2_jumlahpenghuni, String dr3_asuransi, String dr4_penyebabkerusakan, 
			String dr5_kategorikerusakan, String catatan, byte[] image ){
		ContentValues cvalues = new ContentValues();
        cvalues.put(KEY_IDGLOBAL, idglobal);
        cvalues.put (KEY_TIMESTAMP, timestamp);
        cvalues.put(KEY_LONGITUDE, longitude);
        cvalues.put(KEY_LATITUDE, latitude);
        cvalues.put(KEY_ALAMATGLOBAL, alamatrumah);
        cvalues.put(KEY_DR2_NAMAPENGHUNI, dr2_namapenghuni);
        cvalues.put(KEY_DR2_NOMORKONTAK, dr2_nomorkontak);
        cvalues.put(KEY_DR2_JUMLAHPENGHUNI, dr2_jumlahpenghuni);
        cvalues.put(KEY_DR3_ASURANSI, dr3_asuransi);
        cvalues.put(KEY_DR4_PENYEBABKERUSAKAN, dr4_penyebabkerusakan);
        cvalues.put(KEY_DR5_KATEGORIKERUSAKAN, dr5_kategorikerusakan);
        cvalues.put(KEY_CATATAN, catatan);
        cvalues.put(KEY_IMAGE, image);
        
		return db.insert(DATABASE_TABLE2, null, cvalues);
	}
	public long insertkantor(String idglobal, String timestamp, String longitude, String latitude, 
			String dr02_namakantor, String dr02_alamatkantor,
			String dr02_namapemilikkantor, String dr02_nomorkontakpemilik,
			String dr02_jumlahlantairusak, String dr4_penyebabkerusakan, 
			String dr5_kategorikerusakan, String catatan, byte[] image){
		ContentValues cvalues = new ContentValues();
        cvalues.put(KEY_IDGLOBAL, idglobal);
        cvalues.put (KEY_TIMESTAMP, timestamp);
        cvalues.put(KEY_LONGITUDE, longitude);
        cvalues.put(KEY_LATITUDE, latitude);
        cvalues.put(KEY_DR02_NAMAKANTOR, dr02_namakantor);
        cvalues.put(KEY_DR02_ALAMATKANTOR, dr02_alamatkantor);
        cvalues.put(KEY_DR02_NAMAPEMILIKKANTOR, dr02_namapemilikkantor);
		cvalues.put(KEY_DR02_NOMORKONTAKPEMILIK, dr02_nomorkontakpemilik);
		cvalues.put(KEY_DR02_JUMLAHLANTAIRUSAK, dr02_jumlahlantairusak);
        cvalues.put(KEY_DR4_PENYEBABKERUSAKAN, dr4_penyebabkerusakan);
        cvalues.put(KEY_DR5_KATEGORIKERUSAKAN, dr5_kategorikerusakan);
        cvalues.put(KEY_CATATAN, catatan);
        cvalues.put(KEY_IMAGE, image);
        
		return db.insert(DATABASE_TABLE3, null, cvalues);
	}
	public long insertfasilitasumum(String idglobal, String timestamp, String longitude, String latitude, 
			String dr01_namafasilitasumum, String dr01_alamatfasilitasumum, String dr4_penyebabkerusakan, 
			String dr5_kategorikerusakan, String catatan, byte[] image){
		ContentValues cvalues = new ContentValues();
        cvalues.put(KEY_IDGLOBAL, idglobal);
        cvalues.put (KEY_TIMESTAMP, timestamp);
        cvalues.put(KEY_LONGITUDE, longitude);
        cvalues.put(KEY_LATITUDE, latitude);
        cvalues.put(KEY_DR01_NAMAFASILITASUMUM, dr01_namafasilitasumum);
		cvalues.put(KEY_DR01_ALAMATFASILITASUMUM, dr01_alamatfasilitasumum);
        cvalues.put(KEY_DR4_PENYEBABKERUSAKAN, dr4_penyebabkerusakan);
        cvalues.put(KEY_DR5_KATEGORIKERUSAKAN, dr5_kategorikerusakan);
        cvalues.put(KEY_CATATAN, catatan);
        cvalues.put(KEY_IMAGE, image);
        
		return db.insert(DATABASE_TABLE4, null, cvalues);
	}

	
}
